package br.com.gestacard.sync.entidade;

import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;

import org.hibernate.annotations.ForeignKey;
@MappedSuperclass
public abstract class Municipio extends AppBaseEntity {

	private static final long serialVersionUID = 7954122271893742573L;

	
	@Id @GeneratedValue(strategy=GenerationType.AUTO, generator = "SE_MUNICIPIO")
	@Column (name = "ID_MUNICIPIO", nullable=false, length=5)
	private Long id;
	
	@Column (name = "ID_MUNICIPIO", nullable=false, length=5, updatable=false, insertable= false)
	private Long codigo;
	
	@Column (name = "NOME", nullable=false, length=50)
	private String nome;
	
	@ManyToOne (targetEntity = EstadoEntity.class, fetch = FetchType.LAZY)
	@ForeignKey(name="FK_MUNICIPIO_ESTADO")
	@JoinColumn (name = "ID_ESTADO", nullable=false)
	private Estado estado;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id=id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome=nome;
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado=estado;
	}

	public Long getCodigo() {
		return codigo;
	}

	public void setCodigo(Long codigo) {
		this.codigo = codigo;
	}

}
